##---------- 3. 创建接口库，集中管理链接 ----------
add_library(MY_STDCXXFS INTERFACE)

##---------- 仅在 GCC<9.1 时需要
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND
   CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.1)
    # 列出最可能出现的目录
    set(STDCXXFS_HINTS
        /usr/lib/gcc/x86_64-redhat-linux/*/        # CentOS 8 自带或 toolset
        # /usr/lib64/gcc/x86_64-redhat-linux/*/      # 同上，64-bit 目录
        # ${CMAKE_CXX_COMPILER_INCLUDE_PATH}/../lib64/  # 自编译 GCC
        # ${CMAKE_CXX_COMPILER_INCLUDE_PATH}/../lib/
    )
    # 让 find_library 支持通配符
    file(GLOB STDCXXFS_DIRS ${STDCXXFS_HINTS})
    find_library(STDCXXFS_LIB
                 NAMES stdc++fs
                 HINTS ${STDCXXFS_DIRS}
                 NO_DEFAULT_PATH)   # 加快搜索
    if(NOT STDCXXFS_LIB)
        message(FATAL_ERROR "libstdc++fs.a not found (CentOS/GCC<9.1)")
    endif()
    message(STATUS "Found libstdc++fs: ${STDCXXFS_LIB}")
endif()

## ---------- 4. 你的可执行/库直接链接该接口 ----------
## 示例：
# add_executable(my_app main.cpp)
# target_link_libraries(my_app PRIVATE MY_STDCXXFS)